package com.example.javaproject;

import java.util.ArrayList;

import android.app.Service;
import android.content.ContentResolver;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.IBinder;
import android.provider.MediaStore.Audio.Media;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;


public class PlayService extends Service {
	
	//内容提供者
	ListView albumList;
	ImageView start;
	ImageView pause;
	ImageView stop;
	//定义List集合
	ArrayList<String> songList;//用于存储音乐
	ArrayList<String> pathList;//用于存储音乐路径

	Uri uri=Media.EXTERNAL_CONTENT_URI;
	ContentResolver albumCr;
	ArrayAdapter<String> albumAdapter;
	MediaPlayer albumMp;

	
	//定义播放器状态
	static boolean isPlay;

	
	
   //I:必须实现的绑定方法,当其他组件通过BindService()请求与服务绑定时,调用
	@Override
	public IBinder onBind(Intent arg0) {
		Log.i("TAG", "----onBind-----");
		return null;
	}
	
	//II:当其他组件调用unbindService()方法解除被绑定到服务的所有组件的绑定后调用
	@Override
	public boolean onUnbind(Intent intent) {
		Log.i("TAG", "----onUnbind-----");
		return super.onUnbind(intent);
	}



	//1:首次创建服务时调用,仅且调用一次
	@Override
	public void onCreate() {
		super.onCreate();
		Log.i("TAG", "----onCreate-----");
		//2.1:获取播放器组件
		
		albumMp = new MediaPlayer();
	}

    //2:当其他组件通过startService()方法请求启动服务时调用
	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		Log.i("TAG", "----onStartCommand-----"+flags+"--"+startId);
		if (!albumMp.isPlaying()) {
			albumMp.start();//2.1播放音乐
			isPlay=albumMp.isPlaying();//2.2修改播放器状态
			
		}
		return super.onStartCommand(intent, flags, startId);
	}
	
	//3:当销毁服务时调用,仅且调用一次
	@Override
	public void onDestroy() {
		//4.1:关闭播放器
		albumMp.stop();
		if (isPlay) {
			albumMp.release();//4.2释放资源
		}
		Log.i("TAG", "----onDestroy-----");
		super.onDestroy();
	}
    
}
